# 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。

# 案例:

# s = "leetcode"
# 返回 0.

# s = "loveleetcode",
# 返回 2.
 
# 注意事项：您可以假定该字符串只包含小写字母。

"""
看了别人的解题思路，发现可以利用只包含小写字母来判断，速度居然
还挺快。
"""

class Solution:
    def firstUniqChar(self, s: str) -> int:
        m = {}
        for index, string in enumerate(s):
            m.setdefault(string, [index, 0])
            m[string][1] += 1

        for key, l in m.items():
            if l[1] == 1:
                return  l[0]
        else:
            return -1

def test_firstUniqChar():
    assert Solution().firstUniqChar("leetcode") == 0
    assert Solution().firstUniqChar("loveleetcode") == 2
    assert Solution().firstUniqChar("lllooovvvv") == -1
    assert Solution().firstUniqChar("b") == 0

